package reflect;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

/**
 * @Target:用于指明当前注解可以被应用的位置，具体位置由ElementType表示
 * 1.ElementType.TYPE:注解可以被应用在类上，接口上
 * 2.ElementType.FIELD:注解可以被应用在方法上
 * 3.ElementType.METHOD:注解可以被应用在成员变量/属性上
 * 4.ElementType.CONSTRUCTOR:注解可以被应用在方法参数上
 * 5.ElementType.PARAMETER:注解可以被应用在构造器上
 *
 * 例如：当前注解只能在类上使用
 * @Target(ElementType.TYPE)
 * 例如：当前注解可以在类上及属性上使用（数组形式指定）
 * @Target({ElementType.TYPE,ElementType.FIELD})
 */
@Target({ElementType.TYPE,ElementType.FIELD})
@Retention(RetentionPolicy.RUNTIME)
public @interface AutoRunClass {
}
